// 子pinia实例
import { defineStore } from "pinia";

// 第一个参数:仓库名，第二个参数:配置对象
// defineStore方法执行返回一个函数，作用是让组件可以获取到仓库的数据
// @ts-ignore
// @ts-ignore
let useInfoStore = defineStore("info", {
  // 存储数据
  state: () => {
    return {
      count: 99,
      attr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    };
  },
  actions: {
    // 注意该函数没有context上下文对象
    updateNum(a: number, b: number) {
      this.count += b;
      console.log(a, b);
    },
    addAttr(num:number){
      this.attr.push(num)
    }
  },
  getters: {
    total() {
      let result:number = this.attr.reduce((prev: number, next: number) => {
        return prev+next;
      });
      return result;
    }
  }
});

export default useInfoStore;